A great variety of small portable devices such as personal digital assistants (PDA), multi-function cell phones, digital cameras, music players, etc. have become widely available. These devices use a central processing unit (CPU) or microcontroller and a mass-storage memory such as a hard drive or flash memory. These small devices are often cost and size sensitive.
Hard disks and other mass storage devices are being replaced or supplemented with solid-state mass storage such as flash memories. Flash memories use non-volatile memory cells such as electrically-erasable programmable read-only memory, (EEPROM), but are not randomly accessible at the byte level. Instead, whole pages or sectors of 512 bytes or more are read or written together as a single page. NAND flash memory is commonly used for data storage of blocks. Pages in the same block may have to be erased together, and limitations on writing may exist, such as only being allowed to write each page once between erases.
These small portable electronic devices often are able to connect to a host computer such as a personal computer (PC). While a proprietary connector may be used, a connector for a standard expansion bus is preferable. Universal-serial bus (USB) is often used to connect such portable flash-memory devices to a PC.
USB uses one pair of differential lines that are time-duplexed, or used for transmission in both directions, but at different times. This may limit performance when data needs to be sent in both directions at the same time. The current USB 2.0 standard provides that the host, such as the PC, controls the bus as the bus master, while USB devices plugged into the host act as slave devices. A USB controller on the host PC generates data transfer transactions and waits for USB devices to respond, either by transmitting requested data to the host, or by writing host data into the USB device's memory.
Often a host system contains several different buses. For example, the host may have a peripheral component interconnect express (PCIE) bus, a universal-serial bus (USB), an Integrated Device Electronics (IDE) bus, and an AT bus.
Some buses may be enhanced with a revised version of the protocol specification. For example, USB has a version 2.0 and a newer proposed version 3.0 that improves performance by using a full-duplex differential bus, and by eliminating polling.
Devices to convert one bus type to another bus type are known as bridges. Bridges are needed for the new revisions to bus protocol standards. In particular, a bridge to the new USB 3.0, or extended USB (EUSB) is desired.
Legacy host systems are not equipped for the newer bus protocols since these legacy systems are older and were designed before the new bus protocols were available. Nevertheless, it is desirable to retrofit these legacy systems for use with the new bus protocols. A bridge from an existing bus on the legacy system to the new bus may be added. However, adding another bridge device may increase delays to the new bus, defeating some of the performance advantage of the new bus protocol.
Bridges are often slow since all protocol layers may be present and are traversed. Data packets must flow up through the stack of protocol layers and then back down another stack of protocol layers for the other bus. When multiple bus standards are present on a host system, several bridges may be used in series, causing increased delays for multiple successive format conversions by multiple bridge devices.
What is desired is a bridge to an EUSB device. A bridge that is more efficient is desirable. A bridge that directly converts to EUSB is desired. A bridge for a legacy system that converts from an existing standard to EUSB is also desired.